<?php
class Result extends Eloquent
{
    public static $timestamps = false;

    public function channel()
    {
        return $this->belongs_to('Channel');
    }

    /**
     * Chèn kết quả vào db, nếu ngày + đài đã tồn tại thì cập nhật kết quả
     * @param $data
     * @return Laravel\Database\Eloquent\false|Laravel\Database\Eloquent\Model
     */
    public static function updateOrInsert($data)
    {
        $oldResult = static::where_date($data['date'])->where_channel_id($data['channel_id'])->first();
        if (!$oldResult) {
            return static::create($data);
        } else {
            foreach ($data as $column => $value)
            {
                $oldResult->{$column} = $value;
            }
            $oldResult->save();
            return $oldResult;
        }
    }

    /**
     * Nhận về các đài hiện có trong một thứ
     * @param $dayOfWeek
     * @return array
     */
    public static function channelsByWeekday($dayOfWeek)
    {
        $weekdays = static::with('channel')->where_weekday($dayOfWeek)->distinct()->get(array('channel_id'));
        foreach ($weekdays as $curWeekday)
        {
            $result[$curWeekday->channel_id] = $curWeekday->channel->name;
        }

        return $result;
    }

    public function optimizeForClient()
    {
        $this->set_attribute('date', strtotime($this->date));
        return $this->to_array();
    }
}